"""
1. json 字符串转对象
load/dump -> 读取/写入文件
loads/dumps -> dict/string
"""
import json
from urllib.parse import unquote
import re

# obj -> str -> obj
arr = [{"name": "啊切"}, {"name": "小明"}, {"name": "小红"}]
json_str = json.dumps(arr, ensure_ascii=True)
with open("a.json", "w", encoding="utf-8") as f:
    f.write(json_str)

arrNew = json.loads(json_str)
print(arrNew)

# obj -> str -> obj
arr2 = [{"name": "\u554a\u5207"}, {"name": "\u5c0f\u660e"}, {"name": "\u5c0f\u7ea2"}]
json_str = json.dumps(arr2, ensure_ascii=True)
arrNew2 = json.loads(json_str)
print(arrNew2)

str = 'http://www.news.cn/politics/2022-11/19/c_1129140908.htm'
print(str.rsplit('/',1)[0:-1][0])

url = 'http://www.news.cn/sports/Qatar2022/1'
if not url.endswith('/'):
    print('yes')

image_url = "http://www.news.cn/politics/2022-11/22/1129148998_16691009349491n.jpg"
print(image_url.split('/')[-1])

print(unquote('http%3A//www.news.cn/sports/2022-11/22/1129147367_16690766051971n.jpg'))

print(unquote("%E4%B8%81%E5%84%BF"))

if url.startswith('http'):
    print('yes')

str = '[隋]'

res = re.match(u"\[([\u4e00-\u9fa5]+){0,1}\]([\u4e00-\u9fa5]+){0,1}", str)
if res:
    print(res.group(1))
    pass
else:
    pass
res = re.match(u"\[([\u4e00-\u9fa5]+){0,1}\]([\u4e00-\u9fa5]+){0,1}", str).group(2)
print(res)

a = '作者-上海悠悠 QQ交流群:717225969 blog地址:https://www.cnblogs.com/yoyoketang/ 欢迎收藏'
res = re.search(r'QQ交流群:(\d+) blog地址:(.*?) 欢迎收藏', a)
result1 = res.group(0)
result2 = res.group(1)
print(result1, result2)


s="""
            en: Regular expression is a powerful tool for manipulating text. 
            zh: [汉语是世界上]最优美的语言，正则表达式是一个很有用的工具
            jp: 正規表現は非常に役に立つツールテキストを操作することです。 
            jp-char: あアいイうウえエおオ 
            kr:정규 표현식은 매우 유용한 도구 텍스트를 조작하는 것입니다. 
            """

re_words = re.search(u"\[([\u4e00-\u9fa5]+)\]([\u4e00-\u9fa5]+).*", s)
print(re_words.group(0))
print(re_words.group(1))
print(re_words.group(2))

def process_content(content):
    # 替换空白字符
    content = [re.sub("\xa0|\s", "", i) for i in content]
    # 删除空白字符串
    content = [i for i in content if len(i) > 0]
    return content

# 数组转字符串
print(''.join(process_content(s)))

ls3 =['a','b','c','d','e','f']
d = dict(enumerate(ls3))
print(d)


# 合并list -> dict -> dict 转 list
# print(item['cate'], item['description'])
# print('dict', dict(zip(item['cate'], item['description'])))
# print('item', list(dict(zip(item['cate'], item['description'])).items()))

cates = ['四大名著', '二十四史', '四书', '五经', '演义小说']
descs = ['中国的四大名著是《三国演义》、《水浒传》、《西游记》、《红楼梦》。这四部著作历久不衰，是汉语文学史中不可多得的经典作品。其中的故事、场景、人物已经深深地影响了中国人的思想观念、价值取向。四部著作都有很高的文学水平和艺术成就。细致的刻画和所蕴含的深刻思想都为历代读者所称道。是中国文学史上的四座伟大丰碑。', '二十四史，中国古代各朝撰写的二十四部史书的总称，是被历来的朝代纳为正统的史书，故又称“正史”。它上起传说中的黄帝（约前2550年），止于明朝崇祯十七年（1644年），计3213卷，约4000万字，用统一的有本纪、列传的纪传体编写。1921年，中华民国大总统徐世昌下令将《新元史》列入正史，与“二十四史”合称为“二十五史”，而多数地方不将新元史列入，而改将《清史稿》列为二十五史之一，或者将两书都列入正史，则形成了“二十六史”。', '四书又称四子书，是《论语》《孟子》《大学》《中庸》的合称。南宋著名理学家朱熹取《礼记》中的《中庸》《大学》两篇文章单独成书，与记录孔子言行的《论语》、记录孟轲言行的《孟子》合为“四书”。 四书的作者包括孔子、子思、孟子、程子、朱熹等，其编撰时间间隔达一千八百年。宋元以后，《大学》《中庸》成为学校官定教科书和科举考试必读书，对古代汉族教育产生了极大的影响。', '“五经”指的是《诗》《书》《易》《礼》《春秋》，这五部书是我国保存至今的最古的文献，也是我国古代儒家的主要经典。《诗》又称《诗经》，是我国最早的一部诗集，现存305篇，由风、雅、颂三部分组成。风包括十五国风，共160篇；雅分大雅和小雅，共105篇；颂分周颂、鲁颂、商颂，共40篇。各篇的创作年代，大部分已不可确知。根据部分诗篇考查，最早的约作成于西周初年，最晚的约作成于春秋中期。全书是经过五、六百年时间的积累、并经过搜集者的加工和润色而成的。', '它是小说体裁之一，是中国古代小说重要形式之一，由宋代的讲史话本发展而来，元末明初出现这个名称。“讲史”原是宋代说话四家之一，以说讲历史故事为其特点。其篇幅较长，或取材正史而作不同程度的虚构，或取材野史传说。故事内容侧重於朝代兴亡和政治军事斗争。']
items = [[cates[i], descs[i]] for i in range(len(cates))]
print('items', items)
print("\n")

dicts = {'四大名著': '中国的四大名著是《三国演义》、《水浒传》、《西游记》、《红楼梦》。这四部著作历久不衰，是汉语文学史中不可多得的经典作品。其中的故事、场景、人物已经深深地影响了中国人的思想观念、价值取向。四部著作都有很高的文学水平和艺术成就。细致的刻画和所蕴含的深刻思想都为历代读者所称道。是中国文学史上的四座伟大丰碑。', '二十四史': '二十四史，中国古代各朝撰写的二十四部史书的总称，是被历来的朝代纳为正统的史书，故又称“正史”。它上起传说中的黄帝（约前2550年），止于明朝崇祯十七年（1644年），计3213卷，约4000万字，用统一的有本纪、列传的纪传体编写。1921年，中华民国大总统徐世昌下令将《新元史》列入正史，与“二十四史”合称为“二十五史”，而多数地方不将新元史列入，而改将《清史稿》列为二十五史之一，或者将两书都列入正史，则形成了“二十六史”。', '四书': '四书又称四子书，是《论语》《孟子》《大学》《中庸》的合称。南宋著名理学家朱熹取《礼记》中的《中庸》《大学》两篇文章单独成书，与记录孔子言行的《论语》、记录孟轲言行的《孟子》合为“四书”。 四书的作者包括孔子、子思、孟子、程子、朱熹等，其编撰时间间隔达一千八百年。宋元以后，《大学》《中庸》成为学校官定教科书和科举考试必读书，对古代汉族教育产生了极大的影响。', '五经': '“五经”指的是《诗》《书》《易》《礼》《春秋》，这五部书是我国保存至今的最古的文献，也是我国古代儒家的主要经典。《诗》又称《诗经》，是我国最早的一部诗集，现存305篇，由风、雅、颂三部分组成。风包括十五国风，共160篇；雅分大雅和小雅，共105篇；颂分周颂、鲁颂、商颂，共40篇。各篇的创作年代，大部分已不可确知。根据部分诗篇考查，最早的约作成于西周初年，最晚的约作成于春秋中期。全书是经过五、六百年时间的积累、并经过搜集者的加工和润色而成的。', '演义小说': '它是小说体裁之一，是中国古代小说重要形式之一，由宋代的讲史话本发展而来，元末明初出现这个名称。“讲史”原是宋代说话四家之一，以说讲历史故事为其特点。其篇幅较长，或取材正史而作不同程度的虚构，或取材野史传说。故事内容侧重於朝代兴亡和政治军事斗争。'}

items2= [('四大名著', '中国的四大名著是《三国演义》、《水浒传》、《西游记》、《红楼梦》。这四部著作历久不衰，是汉语文学史中不可多得的经典作品。其中的故事、场景、人物已经深深地影响了中国人的思想观念、价值取向。四部著作都有很高的文学水平和艺术成就。细致的刻画和所蕴含的深刻思想都为历代读者所称道。是中国文学史上的四座伟大丰碑。'), ('二十四史', '二十四史，中国古代各朝撰写的二十四部史书的总称，是被历来的朝代纳为正统的史书，故又称“正史”。它上起传说中的黄帝（约前2550年），止于明朝崇祯十七年（1644年），计3213卷，约4000万字，用统一的有本纪、列传的纪传体编写。1921年，中华民国大总统徐世昌下令将《新元史》列入正史，与“二十四史”合称为“二十五史”，而多数地方不将新元史列入，而改将《清史稿》列为二十五史之一，或者将两书都列入正史，则形成了“二十六史”。'), ('四书', '四书又称四子书，是《论语》《孟子》《大学》《中庸》的合称。南宋著名理学家朱熹取《礼记》中的《中庸》《大学》两篇文章单独成书，与记录孔子言行的《论语》、记录孟轲言行的《孟子》合为“四书”。 四书的作者包括孔子、子思、孟子、程子、朱熹等，其编撰时间间隔达一千八百年。宋元以后，《大学》《中庸》成为学校官定教科书和科举考试必读书，对古代汉族教育产生了极大的影响。'), ('五经', '“五经”指的是《诗》《书》《易》《礼》《春秋》，这五部书是我国保存至今的最古的文献，也是我国古代儒家的主要经典。《诗》又称《诗经》，是我国最早的一部诗集，现存305篇，由风、雅、颂三部分组成。风包括十五国风，共160篇；雅分大雅和小雅，共105篇；颂分周颂、鲁颂、商颂，共40篇。各篇的创作年代，大部分已不可确知。根据部分诗篇考查，最早的约作成于西周初年，最晚的约作成于春秋中期。全书是经过五、六百年时间的积累、并经过搜集者的加工和润色而成的。'), ('演义小说', '它是小说体裁之一，是中国古代小说重要形式之一，由宋代的讲史话本发展而来，元末明初出现这个名称。“讲史”原是宋代说话四家之一，以说讲历史故事为其特点。其篇幅较长，或取材正史而作不同程度的虚构，或取材野史传说。故事内容侧重於朝代兴亡和政治军事斗争。')]
keys = ["cate", "description"]
res = []
for i in range(0, len(items)):
    res.append(dict(zip(keys, items[i])))

print(items)

test = ['四大名著', '中国的四大名著是《三国演义》、《水浒传》、《西游记》、《红楼梦》']
print("res",res)